-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "jx90614"
VERSION = "1.0.0"

-- sys库是标配
sys = require("sys")

local jx90614 = require "jx90614"

-- 接线
--[[
JX90614 --- 模块
SDA   -   I2C_SDA
SCL   -   I2C_SCL
VCC   -   VDDIO
GND   -   GND
]]

--电平设置为3.3v
pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)
--设置gpio2输出,给camera_sda、camera_scl引脚提供上拉
gpio.setup(2, 1)

i2cid = 1
i2c_speed = i2c.FAST

-- 尝试不同的I2C速度
sys.taskInit(function()
    log.info("jx90614", "开始初始化传感器...")
    
    -- 尝试不同的I2C速度
    local current_speed = i2c.FAST

    -- 设置当前速度        
    i2c.setup(i2cid, current_speed)
        
    -- 尝试初始化
    log.info("jx90614", "开始初始化流程...")
    local init_result = jx90614.init(i2cid)
    if init_result then
        log.info("jx90614", "初始化成功")
    end
    
    -- 持续尝试直到程序停止或手动中断
    while true do
        if init_result then
            -- 读取目标温度
            local temperature = jx90614.get_temperature()
            if temperature then
                log.info("jx90614", "成功读取到温度: " .. string.format("%.2f", temperature) .. "℃")
            else
                log.info("jx90614", "读取温度失败")
            end
            
            -- 读取环境温度
            local ambient_temp = jx90614.get_ambient_temperature()
            if ambient_temp then
                log.info("jx90614", "成功读取到环境温度: " .. string.format("%.2f", ambient_temp) .. "℃")
            else
                log.info("jx90614", "读取环境温度失败")
            end
            
            sys.wait(1000)
        else
            log.info("jx90614", "初始化未完成，但将继续尝试读取--->"..init_result)
        end
        sys.wait(1000)
    end
end)

-- 添加一个简单的系统监控任务
sys.taskInit(function()
    local count = 0
    while 1 do
        sys.wait(1000)
        count = count + 1
        if count % 60 == 0 then
            log.info("sys", "系统运行时间: " .. (count / 60) .. "分钟")
        end
    end
end)

sys.run()